﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using Dominio;

namespace WebUI.Models {
    public class CategoriaItemModel {
        public long IdCategoria { get; set; }
        public string NomeCategoria { get; set; }
        public long? IdCategoriaMae { get; set; }

        public CategoriaItemModel(CategoriaBase categoria) {
            this.IdCategoria = categoria.Id;
            this.IdCategoriaMae = (categoria is SubCategoria) ? (long?)(categoria as SubCategoria).Categoria.Id : null;
            this.NomeCategoria = (categoria is SubCategoria) ? string.Format("{0} - {1}", (categoria as SubCategoria).Categoria.Nome, categoria.Nome) :
                                                               categoria.Nome;
        }
    }

    public class CategoriaModel {
        [Required(ErrorMessage = "Digite o nome da categoria")]
        [StringLength(100, MinimumLength = 5, ErrorMessage = "O nome deve ter no máximo {1} e no mínimo {2} carecteres")]
        public string NomeCategoria { get; set; }

        public long? IdCategoriaMae { get; set; }
    }

    public class CategoriaEditModel {
        public long IdCategoriaModel { get; set; }
        public long? IdCategoriaMae { get; set; }

        [Required(ErrorMessage = "Digite o nome da categoria")]
        [StringLength(100, MinimumLength = 5, ErrorMessage = "O nome deve ter no máximo {1} e no mínimo {2} carecteres")]
        public string NomeCategoria { get; set; }

        public CategoriaEditModel() { }
        public CategoriaEditModel(CategoriaBase categoria) {
            this.IdCategoriaModel = categoria.Id;
            this.NomeCategoria = categoria.Nome;

            if (categoria is SubCategoria)
                this.IdCategoriaMae = (categoria as SubCategoria).Categoria.Id;
        }
    }
}